<template>
  <el-cascader
    :value="value"
    :options="treeData"
    :props="{ label: 'name', value: 'id' }"
    size="mini"
    @change="handleChange"
  />
</template>
<script>
import { getDeptListAPI } from '@/api/department'
import { list2Tree } from '@/utils'
export default {
  name: 'SelectTree',
  props: {
    value: {
      type: Number,
      default: null
    }
  },
  data() {
    return {
      treeData: []
    }
  },
  created() {
    this.getDeptList()
  },
  methods: {
    // 选中的节点改变时
    handleChange(arr) {
      // 子传父，携带数组中最后一个元素的值
      this.$emit('input', arr[arr.length - 1])
    },
    async getDeptList() {
      // 发请求获取部门列表
      const deptList = await getDeptListAPI()
      // 做树形转换并赋值
      this.treeData = list2Tree(deptList, 0)
    }
  }
}
</script>

<style>

</style>
